package cn.com.surker.production.dao;

import cn.com.surker.production.entity.ProDriverSign;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 车辆打卡记录 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2022-02-15
 */
public interface ProDriverSignDao extends BaseMapper<ProDriverSign> {

    /**
     * 统计最近签到车牌数
     * @param openid
     * @param signTime 签到时间
     * @return
     */
    List<ProDriverSign> findSignTotal(String openid, String signTime, String code);

    /**
     * 查询司机总数
     * @param orgId
     * @param startTime
     * @param endTime
     * @return
     */
    Integer findDriverTotal(Long orgId, String startTime, String endTime);

    /**
     * 查询上班打卡次数
     * @param orgId
     * @param signTime
     * @param code
     * @param signType 签到类型
     * @return
     */
    Integer findNoWorkTotal(Long orgId, String signTime, String code, Integer signType);

    /**
     * 查询最后一次签到时间
     * @param openid
     * @return
     */
    ProDriverSign findLastSign(String openid);

    /**
     * 查询最后一次申请记录
     * @param openid
     * @param signType
     * @return
     */
    ProDriverSign findLastWorkSign(String openid, Integer signType);

    /**
     * 根据自编号公司查询最后签到信息
     * @param code
     * @param orgId
     * @return
     */
    ProDriverSign findLastSignByCode(String code, Long orgId);

    /**
     * 查询未按规定最后一次签到时间
     * @param code 自编号
     * @param signTime 出厂时间
     * @param orgId 公司ID
     * @return
     */
    ProDriverSign findLastUnTicketSign(String code, String signTime, Long orgId);

    /**
     * 根据条件查询车辆自编号
     * @param openid
     * @param orgId 公司ID
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> findCarNo(String openid, Long orgId, String startTime, String endTime);

}
